﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ED_Nivelacion.Negocios;
using System.IO;
using System.Configuration;
using System.Text;

namespace ED_Nivelacion.PresentacionWeb
{
    public partial class Estudiante1 : System.Web.UI.Page
    {
        StringBuilder contenidoHtml = new StringBuilder();
        Periodo_C _objPeriodo_C = new Periodo_C();
        Carrera_C _objCarrera_C = new Carrera_C();
        Paralelo_C _objParalelo_C = new Paralelo_C();
        Alumno _objAlumno = new Alumno();
        Alumno_C _objAlumno_C = new Alumno_C();
        Matricula _objMatricula = new Matricula();
        Matricula_C _objMatricula_C = new Matricula_C();
        Periodo_C _objPeriodo = new Periodo_C();
        List<Persona> _listaPersona = new List<Persona>();
        string FilePath;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["tipoUsuario"] != null)
            {
                if (Session["tipoUsuario"].ToString() != "Administrador")
                {
                    if (Session["tipoUsuario"].ToString() == "Docente")
                    {
                        Response.Redirect("frm_InicioDocente.aspx");
                    }
                    else if (Session["tipoUsuario"].ToString() == "Coordinador")
                    {
                        Response.Redirect("frm_InicioCoordinador.aspx");
                    }
                    else if (Session["tipoUsuario"].ToString() == "Estudiante")
                    {
                        Response.Redirect("frm_InicioEstudiante.aspx");
                    }
                    else if (Session["tipoUsuario"].ToString() == "Tutor")
                    {
                        Response.Redirect("frm_InicioTutor.aspx");
                    }
                }
            }
            else
            {
                Response.Redirect("frm_Login.aspx");
            }

            if (!Page.IsPostBack)
            {

                //Cbm_Periodo.DataSource = _objPeriodo_C.ObtenerPeriodo();
                //Cbm_Periodo.DataValueField = "idPeriodo";
                //Cbm_Periodo.DataTextField = "Nombre_Periodo";
                //Cbm_Periodo.DataBind();

                cbm_Carreras.DataSource = _objCarrera_C.ObtenerCarrera();
                cbm_Carreras.DataValueField = "idCarrera";
                cbm_Carreras.DataTextField = "CarreraNombre";
                cbm_Carreras.DataBind();
            }
        }
        
        public void cargar_grid()
        {
            if (FileUpload1.HasFile)
            {
                string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
                string Extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
                string FolderPath = ConfigurationManager.AppSettings["FolderPath"];


                FilePath = Server.MapPath(FolderPath + FileName);
                FileUpload1.SaveAs(FilePath);
            }

            _listaPersona = Persona_C.selectExcel(@"" + FilePath, "Hoja1");
            Session["Lista"] = _listaPersona;
            foreach (var item in _listaPersona)
            {
                contenidoHtml.Append("<tr><td>"+item.idPersona+"</td><td>"+item.Nombre+"</td><td>"+item.Apellido+"</td><td>"+item.Cedula+"</td></tr>");
            
            }
            tablaParalelos.InnerHtml = contenidoHtml.ToString();
        }

        protected void btnUpload_Click(object sender, EventArgs e)
        {
            string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
            if (FileName != "")
            {
                cargar_grid();

                // System.Web.HttpContext.Current.Response.Write("<SCRIPT>$(document).ready(function () { alert('hola') });</SCRIPT>");
            }
            else
            {

                System.Web.HttpContext.Current.Response.Write("<SCRIPT>$(document).ready(function () { $('#error_div').Append('error') });</SCRIPT>");
                //System.Web.HttpContext.Current.Response.Write("<SCRIPT>$('#error_div').html('hola');</SCRIPT>");

            }
        }

        protected void Btn_Estudiante_Click(object sender, EventArgs e)
        {
            if (txtCambio.Text == "" || int.Parse(txtCambio.Text) == 0)
            {
                ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('Se debe escoger un paralelo');", true);
                Timer1.Enabled = true;
            }
            else
            {

                GuardarEstudiante();
            }
        }
        void GuardarEstudiante()
        {
            var lista = (List<Persona>)Session["Lista"];

            foreach (var item in lista)
            {
                Persona _objPer = new Persona();
                Persona_C _catPer = new Persona_C();

                var nombres = "";
                _objPer.Nombre = item.Nombre;
                _objPer.Apellido = item.Apellido;
                _objPer.Cedula = item.Cedula;
                _objPer.idUsuario = 3;

                var x = txtCambio.Text;
                var Periodo =  _objPeriodo.ObtenerPeriodo().Last().idPeriodo;

                Random r = new Random();
                int aleatorio = r.Next(1000, 9999);

                _objPer.Clave = item.Cedula;

                nombres = item.Nombre + " " + item.Apellido;

                var msm = _catPer.AgregarPersona(_objPer);
                if (msm == "Ingresado")
                {
                    var idPersona = _catPer.ObtenerPersona().Where(c => c.Cedula == item.Cedula).FirstOrDefault().idPersona;

                    _objAlumno.idPersona = idPersona;
                    var msn = _objAlumno_C.AgregarAlumno(_objAlumno);
                    if (msn == "Ingresado")
                    {
                        var idAlumno = _objAlumno_C.ObtenerAlumno().Where(c => c.idPersona == idPersona).FirstOrDefault().idAlumno;
                        _objMatricula.idAlumno = idAlumno;
                        _objMatricula.idParalelo = int.Parse(x);
                        _objMatricula.idPeriodo = Periodo;

                        var mensaje = _objMatricula_C.AgregarMatricula(_objMatricula);

                        if (mensaje == "Matriculado")
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('El usuario " + nombres + " ya esta matriculado');", true);
                            Timer1.Enabled = true;
                        }
                        else if (mensaje == "OK")
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:sucessMessage('Matriculado correctamente');", true);
                            Timer1.Enabled = true;
                        }
                        else
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('" + mensaje + "');", true);
                            Timer1.Enabled = true;
                        }
                    }
                    else if (msn == "OK")
                    {
                        var idAlumno = _objAlumno_C.ObtenerAlumno().Last().idAlumno;
                        _objMatricula.idAlumno = idAlumno;
                        _objMatricula.idParalelo = int.Parse(x);
                        _objMatricula.idPeriodo = Periodo;

                        var mensaje = _objMatricula_C.AgregarMatricula(_objMatricula);

                        if (mensaje == "OK")
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:sucessMessage('Matriculado correctamente');", true);
                            Timer1.Enabled = true;
                        }
                        else
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('" + mensaje + "');", true);
                            Timer1.Enabled = true;
                        }

                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('Se registro problemas con " + nombres + "');", true);
                        Timer1.Enabled = true;
                    }

                }
                else if (msm == "OK")
                {
                    var idPersona = _catPer.ObtenerPersona().Last().idPersona;
                    _objAlumno.idPersona = idPersona;

                    var msn = _objAlumno_C.AgregarAlumno(_objAlumno);

                    if (msn == "Ingresado")
                    {
                        var idAlumno = _objAlumno_C.ObtenerAlumno().Where(c => c.idPersona == idPersona).FirstOrDefault().idAlumno;
                        _objMatricula.idAlumno = idAlumno;
                        _objMatricula.idParalelo = int.Parse(x);
                        _objMatricula.idPeriodo = Periodo;

                        var mensaje = _objMatricula_C.AgregarMatricula(_objMatricula);

                        if (mensaje == "Matriculado")
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('El usuario " + nombres + " ya esta matriculado');", true);
                            Timer1.Enabled = true;
                        }
                        else if (mensaje == "OK")
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:sucessMessage('Matriculado correctamente');", true);
                            Timer1.Enabled = true;
                        }
                        else
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('" + mensaje + "');", true);
                            Timer1.Enabled = true;
                        }
                    }
                    else if (msn == "OK")
                    {
                        var idAlumno = _objAlumno_C.ObtenerAlumno().Last().idAlumno;
                        _objMatricula.idAlumno = idAlumno;
                        _objMatricula.idParalelo = int.Parse(x);
                        _objMatricula.idPeriodo = Periodo;

                        var mensaje = _objMatricula_C.AgregarMatricula(_objMatricula);

                        if (mensaje == "OK")
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:sucessMessage('Matriculado correctamente');", true);
                            Timer1.Enabled = true;
                        }
                        else
                        {
                            ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('" + mensaje + "');", true);
                            Timer1.Enabled = true;
                        }

                    }

                }
                else
                {
                    ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('Se registro problemas con " + nombres + "');", true);
                    Timer1.Enabled = true;
                }




            }
        }



    }
}